/****************
ajax的高级函数
功能有组合而来
	author:	金凯小朋友
	email: woshiug@126.com
建议不要使用'aj'变量
var aj = c_ajax();
*****************/
function c_ajax(){//创建AJAX
	var l_ajax = false;
	if(window.XMLHttpRequest) { //Mozilla 浏览器
		l_ajax = new XMLHttpRequest();
	}else{
		if (window.ActiveXObject) { // IE浏览器
			try {
				l_ajax = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					l_ajax = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
	} 
	if(!l_ajax) { // 异常，创建对象实例失败
		window.alert("不能创建XMLHttpRequest对象实例.");
	}
	return l_ajax;
}
function aj_send(aj,val,url,mo){//对象，值，地址,模式
	if((typeof(aj)=='undefined')||(typeof(val)=='undefined')){return false;}
	if(typeof(mo)=='undefined'){mo='p';}
	if(typeof(mo)=='undefined'){url=location.pathname;}
	if(mo=='p'){
		aj.open("POST", url, true);
		aj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		aj.send(val);
	}
	if(mo=='g'){
		url = url +'?'+ val;
		//alert(url)
		aj.open("GET", url, true);
		aj.send(null);
	}
}
//返回空字符串为服务器没响应，//返回0为超时
function aj_rtext(aj,fun,time){//对象，函数，超时时间//如果超时返回0，不超是返回结果
	if(typeof(aj)=='undefined'){return false;}
	if(typeof(fun)=='undefined'){fun='alert';}
	if(typeof(time)=='undefined'){time=10000;}//10秒
	if(typeof(r)=='undefined'){r='n';}
	var ajt = aj;
	eval('aj='+aj);//名转值
	time = time-100;
	if(aj.readyState == 4) {
		var r_obj = aj.responseText;
		eval(fun+'('+'r_obj'+')');
	}else{
		if(time<=100){
			eval(fun+'('+0+')');
			aj.abort();
			return false;
		}
		eval('setTimeout('+'"aj_rtext('+"'"+ajt+"','"+fun+"','"+time+"'"+')",'+100+')');
	}
}
//返回0为超时 只有超时
function aj_rxml(aj,fun,time){//对象，函数，超时时间//如果超时返回0，不超是返回结果
	if(typeof(aj)=='undefined'){return false;}
	if(typeof(fun)=='undefined'){fun='alert';}
	if(typeof(time)=='undefined'){time=10000;}//10秒
	if(typeof(r)=='undefined'){r='n';}
	var ajt = aj;
	eval('aj='+aj);//名转值
	time = time-100;
	if(aj.readyState == 4 && aj.status==200) {
		var r_obj = aj.responseXML;
		eval(fun+'('+'r_obj'+')');
	}else{
		if(time<=100){
			eval(fun+'('+0+')');
			aj.abort();
			return false;
		}
		eval('setTimeout('+'"aj_rxml('+"'"+ajt+"','"+fun+"','"+time+"'"+')",'+100+')');
	}
}
